package cn.shaoxiongdu.sx.common.utils.web.model.req.base;

import lombok.Data;

import java.io.Serializable;

/**
 * @Author 杜少雄 (email@shaoxiongdu.cn)
 * @CreateDate 2025/7/30 11:06
 * @CopyRight (C) CopyRight 杜少雄 2025
 * @Description 分页参数
 */
@Data
public class PagedReq implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 默认每页数量
     */
    public static final int DEFAULT_SIZE = 20;

    /**
     * 当前页码
     */
    private int page;

    /**
     * 每页数量
     */
    private int size;

    /**
     * 分页参数
     */
    public PagedReq() {
        this(1, DEFAULT_SIZE);
    }

    /**
     *
     * @param page 页码
     */
    public PagedReq(int page) {
        this(page, DEFAULT_SIZE);
    }

    /**
     * 分页参数
     * @param page 页码
     * @param size 每页数量
     */
    public PagedReq(int page, int size) {
        this.page = page;
        this.size = size;
    }

    /**
     * 获取分页偏移量
     * @return 偏移量
     */
    public int getOffset() {
        return page < 2 ? 0 : (page - 1) * size;
    }
}
